<html>
<head><meta charset="utf-8"><title>GATs-status · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html">GATs-status</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="147555661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555661">(Nov 12 2018 at 22:34)</a>:</h4>
<p><span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> at least we know how they will work in practice, i.e. with respect to type checking et al, but I don’t know if they are any plans to make progress on them outside of pushing on chalk integration</p>



<a name="147555678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555678">(Nov 12 2018 at 22:35)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> so is there more work to be done to get them working even once chalk lands?</p>



<a name="147555705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555705">(Nov 12 2018 at 22:35)</a>:</h4>
<p><span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> well I guess yes, since the syntax isn't even fully implemented in rustc</p>



<a name="147555747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555747">(Nov 12 2018 at 22:36)</a>:</h4>
<p>e.g. where clauses on associated types</p>



<a name="147555752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555752">(Nov 12 2018 at 22:36)</a>:</h4>
<p>which the parser does not accept yet</p>



<a name="147555774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555774">(Nov 12 2018 at 22:37)</a>:</h4>
<p>but anyway  I guess they should be "easily" implementable in rustc once chalk has a decent support</p>



<a name="147555782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555782">(Nov 12 2018 at 22:37)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> I see...</p>



<a name="147555787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555787">(Nov 12 2018 at 22:37)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> and is this a blocker to RPIT in traits?</p>



<a name="147555874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555874">(Nov 12 2018 at 22:39)</a>:</h4>
<p><span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> no, but they are a blocker to async functions in traits if they need to borrow data</p>



<a name="147555935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555935">(Nov 12 2018 at 22:40)</a>:</h4>
<p>e.g. <code>async fn foo(&amp;self)</code> is really <code>fn foo&lt;'a&gt;(&amp;'a self) -&gt; impl Future&lt;Item = ()&gt; + 'a</code></p>



<a name="147555947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555947">(Nov 12 2018 at 22:40)</a>:</h4>
<p>so the return type is an existential type which is parametric over a lifetime</p>



<a name="147555958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147555958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147555958">(Nov 12 2018 at 22:40)</a>:</h4>
<p>which you cannot express inside a trait right now because it would be a GAT</p>



<a name="147556637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147556637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147556637">(Nov 12 2018 at 22:56)</a>:</h4>
<p>aha</p>



<a name="147556674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147556674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147556674">(Nov 12 2018 at 22:56)</a>:</h4>
<p>makes sense</p>



<a name="147556680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147556680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147556680">(Nov 12 2018 at 22:56)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> is there any reason we haven't implemented RPIT in traits yet then?</p>



<a name="147557907"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147557907" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147557907">(Nov 12 2018 at 23:22)</a>:</h4>
<p><span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> I don’t know of any, especially since I think <code>existential</code> associated type values are already usable in nightly</p>



<a name="147557926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147557926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147557926">(Nov 12 2018 at 23:22)</a>:</h4>
<p>Members of the lang team may know best</p>



<a name="147558021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147558021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147558021">(Nov 12 2018 at 23:24)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> indeed, I thought the same. I figured it's about time to add support for it!</p>



<a name="147558035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147558035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147558035">(Nov 12 2018 at 23:24)</a>:</h4>
<p>thanks anyway</p>



<a name="147558043"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/GATs-status/near/147558043" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/GATs-status.html#147558043">(Nov 12 2018 at 23:25)</a>:</h4>
<p>I'll double check with a lang/compiler-team member</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>